﻿using DLUProject.Domain;
using DLUProject.Services;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ColorLife.Core.Helper;
public partial class QuanLyKTX_Phong_DoiPhong : BaseUserControl
{
    public SinhVienExtension _sinhVienExt { get; set; }
    public PhongExtension _phongServiceExt { get; set; }
    public SinhVienPhongModel Model { get; set; }
    public IServices<KhuNha> _khuNhaService { get; set; }
    public IServices<Phong> _phongService { get; set; }
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    public int IDSinhVien
    {
        get
        {
            if (Request.QueryString["id"] != null)
                return Server.UrlEncode(Request.QueryString["id"]).ToInt();
            return -1;
        }
    }
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        Model = _sinhVienExt.GetThongTinSinhVien(IDSinhVien);
        if (!IsPostBack)
        {
           
            if (Model == null)
            {
                Response.Redirect("Default.aspx");
            }
            if (Model.Phong == null)
            {
                // Label1.Text = "Sinh vien này chưa được xếp phòng.";
            }
            foreach (var item in _khuNhaService.Table)
            {
                IDKhuNha.Items.Add(new ListItem(item.TenKhuNha, item.IDKhuNha.ToString()));
            }

        }
    }
    protected void IDKhuNha_SelectedIndexChanged(object sender, EventArgs e)
    {
        foreach (var item in _phongService.All().Where(c => c.IDKhuNha == IDKhuNha.SelectedValue.ToInt() &&  c.IsSanSang == true))
        {
            IDPhong.Items.Add(new ListItem(item.TenPhong + " " + item.GetLoaiPhong, item.IDPhong.ToString()));
        }
    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        int idPhong = IDPhong.SelectedValue.ToInt();
        int idSinhVien = IDSinhVien;

        XepPhongResult rs = _phongServiceExt.DoiPhongCho1SinhVien(idSinhVien,Model.Phong.IDPhong,idPhong);
        switch (rs)
        {
            case XepPhongResult.XepPhongThanhCong:
                StatusBox.InnerHtml = "Xếp phòng thành công cho sinh vien." + Model.SinhVien.HoTenDayDu;
                StatusBox.Attributes.Add("class", "alert alert-success");
                break;
            case XepPhongResult.XepPhongThatBai:
                StatusBox.InnerHtml = "Có lỗi trong quá trình xử lý. Vui lòng thử lại.";
                StatusBox.Attributes.Add("class", "alert alert-danger");
                break;
            case XepPhongResult.GioiTinhSinhVienKhongPhuHop:
                StatusBox.InnerHtml = "Giới tính sinh viên không phù hợp ở phòng này.";
                StatusBox.Attributes.Add("class", "alert alert-danger");
                break;
            case XepPhongResult.PhongHetChoTrong:
                StatusBox.InnerHtml = "Phòng này không còn trống.";
                StatusBox.Attributes.Add("class", "alert alert-danger");
                break;
            case XepPhongResult.SinhVienDaOTrongPhong:
                StatusBox.InnerHtml = "Sinh viên này đã được xếp phòng.";
                StatusBox.Attributes.Add("class", "alert alert-danger");
                break;
            case XepPhongResult.SinhVienDangOHoacKhongTimThay:
                StatusBox.InnerHtml = "Sinh viên này đang ở, hoặc không tìm thấy.";
                StatusBox.Attributes.Add("class", "alert alert-danger");
                break;
            case XepPhongResult.SinhVienKhongTonTai:
                StatusBox.InnerHtml = "Sinh viên này không có trong CSDL.";
                StatusBox.Attributes.Add("class", "alert alert-danger");
                break;
            case XepPhongResult.PhongKhongTonTai:
                StatusBox.InnerHtml = "Phòng không có trong CSDL.";
                StatusBox.Attributes.Add("class", "alert alert-danger");
                break;
        }
    }
}